﻿using System;

namespace VariableApplication
{
    /*
     基本数据类型:
        整数: sbyte byte short ushort int uint long ulong char
        浮点: float double
        十进制: decimal
        布尔: true false 指定的值
        空白字符串: string
        空类型: 可为空值的数据类型
     其他值类型: enum class dynamic动态类型，允许运行时推断变量的类型
     通常使用静态类型以获得更好的性能和编译时的类型检查
     */

    public class ExecuteVariable
    {
        /*
        static void Main(string[] args)
        {
            dynamic dynamicVarible = "This can be any type";
            Console.WriteLine(dynamicVarible);

            // C# 变量定义
            // <data_type> <variable_list>;
            int i, j, k;
            char c, ch;
            float f, salary;
            double d;

            // 变量命名规则
            // 变量名可以包含字母、数字和下划线
            // 变量名必须以字母或下划线开头
            // 变量名区分大小写
            // 避免使用关键字作为变量名

            int myVarible = 10;
            string _userName = "John";

            int d1 = 3, f1 = 5;
            byte z = 22;
            double pi = 3.14159;
            char x = 'x';

            // System 命名空间提供ReadKine()方法，用于接受用户的输入，并存储到一个变量
            int num;
            num = Convert.ToInt32(Console.ReadLine());
            Console.WriteLine(num);

            // C# 中的 Lvalues 和 Rvalues
            // 1. lvalue: lvalue 表达式可以出现在赋值语句的左边或右边
            // 2. rvalue: rvalue 表达式可以出现在赋值语句的右边，不能出现在赋值语句的左边
            // 变量时lvalue  数值是 rvalue

            // 有效语句
            int g = 20;
            // 无效语句
            // 10 = 20;
        }
        */
    }
}